home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / Amos / AMOSList-0497 / AMOSLIST / littleexamples.lha / ChkyZoomb.s < prev    next >
Encoding:
Text File  |  1995-01-06  |  6.0 KB  |  303 lines

  1.  
  2.     opt    o+,w-
  3.     output    dh2:CkyZoomB.o
  4.     IncDir    "dh1:Assembler/"
  5.     Include    "AMOS/|AMOSPro_Includes.s"
  6.  
  7.         rsreset
  8. O_ScreenPlane4    rs.l    1
  9. O_ZoomWidth    rs.w    1
  10. O_ZoomHeight    rs.w    1
  11. O_ZoomOrgWidth    rs.w    1
  12. O_ZoomOrgHeight    rs.w    1
  13. O_ZoomPosX    rs.w    1
  14. O_ZoomActX    rs.w    1
  15. O_ZoomActY    rs.w    1
  16. O_ScreenWidth    rs.w    1
  17. O_SizeOf    rs.b    0
  18.  
  19. ckyzoom    movem.l    a3-a6,-(sp)
  20.     lea    .dats(pc),a6
  21.     move.w    d0,O_ZoomWidth(a6)
  22.     bne.s    .contt
  23. .quit    movem.l    (sp)+,a3-a6
  24.     rts
  25. .contt    tst.w    d1
  26.     beq.s    .quit
  27.     lea    96(a0),a4
  28.     move.w    (a0),O_ZoomOrgWidth(a6)
  29.     move.w    2(a0),d7
  30.     move.l    ScOnAd(a5),a3
  31.     moveq.l    #0,d4
  32.     move.w    d2,O_ZoomPosX(a6)
  33.     move.w    EcTx(a3),d4
  34.     lsr.w    #3,d4
  35.     move.w    d4,O_ScreenWidth(a6)
  36.     mulu    d3,d4
  37.     move.w    d4,O_ZoomActY(a6)
  38.     move.w    d7,O_ZoomOrgHeight(a6)
  39.     move.l    (a3)+,a0
  40.     move.l    (a3)+,a1
  41.     move.l    (a3)+,a2
  42.     move.l    4(a3),O_ScreenPlane4(a6)
  43.     move.l    (a3),a3
  44.     move.w    d1,d0
  45.     move.w    d7,d2
  46.     subq.w    #1,d7
  47.     lsr.w    d0
  48. .loopy    sub.w    d1,d0
  49.     bpl    .nexlin
  50. .loopy2    add.w    d2,d0
  51.     movem.w    d0-d2/d7,-(sp)
  52.     move.w    O_ZoomPosX(a6),O_ZoomActX(a6)
  53.     move.w    O_ZoomOrgWidth(a6),d0
  54.     move.w    O_ZoomWidth(a6),d1
  55.     move.w    d0,d6
  56.     subq.w    #1,d6
  57.     move.w    d0,d2
  58.     move.w    d1,d0
  59.     lsr.w    d0
  60. .loopx    sub.w    d1,d0
  61.     bpl    .nexlow
  62. .loopx2    add.w    d2,d0
  63.     move.w    O_ZoomActX(a6),d3
  64.     addq.w    #1,O_ZoomActX(a6)
  65.     moveq.l    #0,d4
  66.     move.b    (a4),d4
  67.     beq    .nexrow
  68.     move.b    d3,d5
  69.     lsr.w    #3,d3
  70.     and.w    #7,d5
  71.     add.w    O_ZoomActY(a6),d3
  72.     add.w    d4,d4
  73.     lea    .table1(pc,d5.w),a5
  74.     add.w    d4,d4
  75.     move.b    (a5),d5
  76.     move.b    8(a5),d7
  77.     lea    .tabl(pc),a5
  78.     adda.l    -4(a5,d4.w),a5
  79.     move.l    a5,-(sp)
  80.     move.l    O_ScreenPlane4(a6),a5
  81.     rts
  82. .table1    dc.b    %10000000,%01000000,%00100000,%00010000
  83.     dc.b    %00001000,%00000100,%00000010,%00000001
  84.     dc.b    %01111111,%10111111,%11011111,%11101111
  85.     dc.b    %11110111,%11111011,%11111101,%11111110
  86.  
  87. .tabl    dc.l    (.col01-.tabl),(.col02-.tabl),(.col03-.tabl)
  88.     dc.l    (.col04-.tabl),(.col05-.tabl),(.col06-.tabl),(.col07-.tabl)
  89.     dc.l    (.col08-.tabl),(.col09-.tabl),(.col0a-.tabl),(.col0b-.tabl)
  90.     dc.l    (.col0c-.tabl),(.col0d-.tabl),(.col0e-.tabl),(.col0f-.tabl)
  91.     dc.l    (.col10-.tabl),(.col11-.tabl),(.col12-.tabl),(.col13-.tabl)
  92.     dc.l    (.col14-.tabl),(.col15-.tabl),(.col16-.tabl),(.col17-.tabl)
  93.     dc.l    (.col18-.tabl),(.col19-.tabl),(.col1a-.tabl),(.col1b-.tabl)
  94.     dc.l    (.col1c-.tabl),(.col1d-.tabl),(.col1e-.tabl),(.col1f-.tabl)
  95.     cnop    0,4
  96.  
  97. .nexrow    tst.w    d0
  98.     blt    .loopx2
  99. .nexlow    addq.l    #1,a4
  100.     dbra    d6,.loopx
  101.     movem.w    (sp)+,d0-d2/d7
  102.     move.w    O_ScreenWidth(a6),d3
  103.     add.w    d3,O_ZoomActY(a6)
  104.     tst.w    d0
  105.     bpl.s    .skilin
  106.     move.w    O_ZoomOrgWidth(a6),d3
  107.     suba.w    d3,a4
  108.     bra    .loopy2
  109. .nexlin    moveq.l    #0,d3
  110.     move.w    O_ZoomOrgWidth(a6),d3
  111.     add.l    d3,a4
  112. .skilin    dbra    d7,.loopy
  113.     movem.l    (sp)+,a3-a6
  114.     rts
  115. .col01    or.b    d5,(a0,d3.w)
  116.     and.b    d7,(a1,d3.w)
  117.     and.b    d7,(a2,d3.w)
  118.     and.b    d7,(a3,d3.w)
  119.     and.b    d7,(a5,d3.w)
  120.     bra.s    .nexrow
  121. .col02    and.b    d7,(a0,d3.w)
  122.     or.b    d5,(a1,d3.w)
  123.     and.b    d7,(a2,d3.w)
  124.     and.b    d7,(a3,d3.w)
  125.     and.b    d7,(a5,d3.w)
  126.     bra.s    .nexrow
  127. .col03    or.b    d5,(a0,d3.w)
  128.     or.b    d5,(a1,d3.w)
  129.     and.b    d7,(a2,d3.w)
  130.     and.b    d7,(a3,d3.w)
  131.     and.b    d7,(a5,d3.w)
  132.     bra.s    .nexrow
  133. .col04    and.b    d7,(a0,d3.w)
  134.     and.b    d7,(a1,d3.w)
  135.     or.b    d5,(a2,d3.w)
  136.     and.b    d7,(a3,d3.w)
  137.     and.b    d7,(a5,d3.w)
  138.     bra    .nexrow
  139. .col05    or.b    d5,(a0,d3.w)
  140.     and.b    d7,(a1,d3.w)
  141.     or.b    d5,(a2,d3.w)
  142.     and.b    d7,(a3,d3.w)
  143.     and.b    d7,(a5,d3.w)
  144.     bra    .nexrow
  145. .col06    and.b    d7,(a0,d3.w)
  146.     or.b    d5,(a1,d3.w)
  147.     or.b    d5,(a2,d3.w)
  148.     and.b    d7,(a3,d3.w)
  149.     and.b    d7,(a5,d3.w)
  150.     bra    .nexrow
  151. .col07    or.b    d5,(a0,d3.w)
  152.     or.b    d5,(a1,d3.w)
  153.     or.b    d5,(a2,d3.w)
  154.     and.b    d7,(a3,d3.w)
  155.     and.b    d7,(a5,d3.w)
  156.     bra    .nexrow
  157. .col08    and.b    d7,(a0,d3.w)
  158.     and.b    d7,(a1,d3.w)
  159.     and.b    d7,(a2,d3.w)
  160.     or.b    d5,(a3,d3.w)
  161.     and.b    d7,(a5,d3.w)
  162.     bra    .nexrow
  163. .col09    or.b    d5,(a0,d3.w)
  164.     and.b    d7,(a1,d3.w)
  165.     and.b    d7,(a2,d3.w)
  166.     or.b    d5,(a3,d3.w)
  167.     and.b    d7,(a5,d3.w)
  168.     bra    .nexrow
  169. .col0a    and.b    d7,(a0,d3.w)
  170.     or.b    d5,(a1,d3.w)
  171.     and.b    d7,(a2,d3.w)
  172.     or.b    d5,(a3,d3.w)
  173.     and.b    d7,(a5,d3.w)
  174.     bra    .nexrow
  175. .col0b    or.b    d5,(a0,d3.w)
  176.     or.b    d5,(a1,d3.w)
  177.     and.b    d7,(a2,d3.w)
  178.     or.b    d5,(a3,d3.w)
  179.     and.b    d7,(a5,d3.w)
  180.     bra    .nexrow
  181. .col0c    and.b    d7,(a0,d3.w)
  182.     and.b    d7,(a1,d3.w)
  183.     or.b    d5,(a2,d3.w)
  184.     or.b    d5,(a3,d3.w)
  185.     and.b    d7,(a5,d3.w)
  186.     bra    .nexrow
  187. .col0d    or.b    d5,(a0,d3.w)
  188.     and.b    d7,(a1,d3.w)
  189.     or.b    d5,(a2,d3.w)
  190.     or.b    d5,(a3,d3.w)
  191.     and.b    d7,(a5,d3.w)
  192.     bra    .nexrow
  193. .col0e    and.b    d7,(a0,d3.w)
  194.     or.b    d5,(a1,d3.w)
  195.     or.b    d5,(a2,d3.w)
  196.     or.b    d5,(a3,d3.w)
  197.     and.b    d7,(a5,d3.w)
  198.     bra    .nexrow
  199. .col0f    or.b    d5,(a0,d3.w)
  200.     or.b    d5,(a1,d3.w)
  201.     or.b    d5,(a2,d3.w)
  202.     or.b    d5,(a3,d3.w)
  203.     and.b    d7,(a5,d3.w)
  204.     bra    .nexrow
  205. .col10    and.b    d7,(a0,d3.w)
  206.     and.b    d7,(a1,d3.w)
  207.     and.b    d7,(a2,d3.w)
  208.     and.b    d7,(a3,d3.w)
  209.     or.b    d5,(a5,d3.w)
  210.     bra    .nexrow
  211. .col11    or.b    d5,(a0,d3.w)
  212.     and.b    d7,(a1,d3.w)
  213.     and.b    d7,(a2,d3.w)
  214.     and.b    d7,(a3,d3.w)
  215.     or.b    d5,(a5,d3.w)
  216.     bra    .nexrow
  217. .col12    and.b    d7,(a0,d3.w)
  218.     or.b    d5,(a1,d3.w)
  219.     and.b    d7,(a2,d3.w)
  220.     and.b    d7,(a3,d3.w)
  221.     or.b    d5,(a5,d3.w)
  222.     bra    .nexrow
  223. .col13    or.b    d5,(a0,d3.w)
  224.     or.b    d5,(a1,d3.w)
  225.     and.b    d7,(a2,d3.w)
  226.     and.b    d7,(a3,d3.w)
  227.     or.b    d5,(a5,d3.w)
  228.     bra    .nexrow
  229. .col14    and.b    d7,(a0,d3.w)
  230.     and.b    d7,(a1,d3.w)
  231.     or.b    d5,(a2,d3.w)
  232.     and.b    d7,(a3,d3.w)
  233.     or.b    d5,(a5,d3.w)
  234.     bra    .nexrow
  235. .col15    or.b    d5,(a0,d3.w)
  236.     and.b    d7,(a1,d3.w)
  237.     or.b    d5,(a2,d3.w)
  238.     and.b    d7,(a3,d3.w)
  239.     or.b    d5,(a5,d3.w)
  240.     bra    .nexrow
  241. .col16    and.b    d7,(a0,d3.w)
  242.     or.b    d5,(a1,d3.w)
  243.     or.b    d5,(a2,d3.w)
  244.     and.b    d7,(a3,d3.w)
  245.     or.b    d5,(a5,d3.w)
  246.     bra    .nexrow
  247. .col17    or.b    d5,(a0,d3.w)
  248.     or.b    d5,(a1,d3.w)
  249.     or.b    d5,(a2,d3.w)
  250.     and.b    d7,(a3,d3.w)
  251.     or.b    d5,(a5,d3.w)
  252.     bra    .nexrow
  253. .col18    and.b    d7,(a0,d3.w)
  254.     and.b    d7,(a1,d3.w)
  255.     and.b    d7,(a2,d3.w)
  256.     or.b    d5,(a3,d3.w)
  257.     or.b    d5,(a5,d3.w)
  258.     bra    .nexrow
  259. .col19    or.b    d5,(a0,d3.w)
  260.     and.b    d7,(a1,d3.w)
  261.     or.b    d5,(a3,d3.w)
  262.     and.b    d7,(a2,d3.w)
  263.     or.b    d5,(a5,d3.w)
  264.     bra    .nexrow
  265. .col1a    and.b    d7,(a0,d3.w)
  266.     or.b    d5,(a1,d3.w)
  267.     and.b    d7,(a2,d3.w)
  268.     or.b    d5,(a3,d3.w)
  269.     or.b    d5,(a5,d3.w)
  270.     bra    .nexrow
  271. .col1b    or.b    d5,(a0,d3.w)
  272.     or.b    d5,(a1,d3.w)
  273.     and.b    d7,(a2,d3.w)
  274.     or.b    d5,(a3,d3.w)
  275.     or.b    d5,(a5,d3.w)
  276.     bra    .nexrow
  277. .col1c    and.b    d7,(a0,d3.w)
  278.     and.b    d7,(a1,d3.w)
  279.     or.b    d5,(a2,d3.w)
  280.     or.b    d5,(a3,d3.w)
  281.     or.b    d5,(a5,d3.w)
  282.     bra    .nexrow
  283. .col1d    or.b    d5,(a0,d3.w)
  284.     and.b    d7,(a1,d3.w)
  285.     or.b    d5,(a2,d3.w)
  286.     or.b    d5,(a3,d3.w)
  287.     or.b    d5,(a5,d3.w)
  288.     bra    .nexrow
  289. .col1e    and.b    d7,(a0,d3.w)
  290.     or.b    d5,(a1,d3.w)
  291.     or.b    d5,(a2,d3.w)
  292.     or.b    d5,(a3,d3.w)
  293.     or.b    d5,(a5,d3.w)
  294.     bra    .nexrow
  295. .col1f    or.b    d5,(a0,d3.w)
  296.     or.b    d5,(a1,d3.w)
  297.     or.b    d5,(a2,d3.w)
  298.     or.b    d5,(a3,d3.w)
  299.     or.b    d5,(a5,d3.w)
  300.     bra    .nexrow
  301.  
  302. .dats    ds.b    O_SizeOf
  303.